from PyQt5.Qt import *
"""
QLineEdit
单行文本框控件, 如需多行请使用QTextEdit

常用方法
setAlignment() : 对齐方式
    Qt.AlignLeft: 水平方向靠左对齐
    Qt.AlignRight: 水平方向靠右对齐
    Qt.AlignCenter: 水平方向居中对齐
    Qt.AlignJustify: 水平方向调整间距两端对起
    Qt.AlignTop: 垂直方向靠上对齐
    Qt.AlignBottom: 垂直方向靠下对齐
    Qt.AlignVCenter: 垂直方向居中对齐
clear(): 清除文本框内容
setEchoMode(): 设置文本框显示格式
    QLineEdit.Normal, 默认选项
    QLineEdit.NoEcho, 不显示输入的字符, 常用于密码输入
    QLineEdit.Password, 显示与平台相关的密码掩码字符, 而不是实际输入的字符
    QLineEdit.PasswordEchoOnEdit, 在编辑时显示字符
setPlaceholderText(): 设置文本框浮显文字
setMaxLength(): 设置文本框所允许输入的最大字符数
setReadOnly(): 只读
setText(): 设置文本内容
Text(): 获取文本内容
setDragEnabled(): 文本框是否接受拖动
selectAll(): 全选
setFocus(): 得到焦点
setInputMash(): 设置掩码
setValidator(): 验证规则
    QIntValidator: 限制输入整数
    QDoubleValidator: 限制输入浮点数
    QRegexpValidator: 是否符合正则

常用信号
selectionChanged: 选择改变, 被触发
textChanged: 修改文本内容时, 被触发
editingFinished: 编辑结束, 被触发


"""
class MyQWidget(QWidget):
    def __init__(self):
        super().__init__()
        self.setup_ui()

    def setup_ui(self):
        self.setWindowTitle("我是标题")

        # 输入掩码
        flo = QFormLayout()
        ipEdit = QLineEdit()
        macEdit = QLineEdit()
        dateEdit = QLineEdit()
        licenseEdit = QLineEdit()
        ipEdit.setInputMask("000.000.000.000:_")
        macEdit.setInputMask("HH:HH:HH:HH:HH:HH;_")
        dateEdit.setInputMask("0000-00-00")
        licenseEdit.setInputMask(">AAAAA-AAAAA-AAAAA-AAAAA;#")
        flo.addRow("数字", ipEdit)
        flo.addRow("mac", macEdit)
        flo.addRow("date", dateEdit)
        flo.addRow("licence", licenseEdit)
        self.setLayout(flo)

# 测试
if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    window = MyQWidget()
    window.show()
    sys.exit(app.exec_())